Crate redis_test
source ·Expand description
Testing support
This module provides MockRedisConnection
which implements ConnectionLike and can be
used in the same place as any other type that behaves like a Redis connection. This is useful
for writing unit tests without needing a Redis server.
§Example
use redis::{ConnectionLike, RedisError};
use redis_test::{MockCmd, MockRedisConnection};
fn my_exists<C: ConnectionLike>(conn: &mut C, key: &str) -> Result<bool, RedisError> {
let exists: bool = redis::cmd("EXISTS").arg(key).query(conn)?;
Ok(exists)
}
let mut mock_connection = MockRedisConnection::new(vec![
MockCmd::new(redis::cmd("EXISTS").arg("foo"), Ok("1")),
]);
let result = my_exists(&mut mock_connection, "foo").unwrap();
assert_eq!(result, true);
Structs§
- Represents a command to be executed against a
MockConnection
. - A mock Redis client for testing without a server.
MockRedisConnection
checks whether the client submits a specific sequence of commands and generates an error if it does not.
Traits§
- Helper trait for converting
redis::Cmd
andredis::Pipeline
instances into encoded byte vectors. - Helper trait for converting test values into a
redis::Value
returned from aMockRedisConnection
. This is necessary because neitherredis::types::ToRedisArgs
norredis::types::FromRedisValue
performs the precise conversion needed.